Formatting Output¶
In C
Language, we had printf()
function to display a formatted
string to stdout
. We also had format specifiers like %s
for
string, %d
for integers and so on…
In Python, there are many ways to format a string, We shall have a look at each way.
Python provides %
as String formatting operator, which has to be
used with C
style format specifiers. General usage of this operator
is as follows.
result = format_string % collection_of_items
Now Let’s see the Formatting Operator in action
In [16]:
'8 = %d , 8.5 = %.1f, name = %s, 3 = %04d' % (8, 8.5, 'Ravi', 3)
Out[16]:
'8 = 8 , 8.5 = 8.5, name = Ravi, 3 = 0003'
There is one more way to format, without the hassle of remembering the
format specifiers. You can use format()
method of the current
string. Same output of above example can be obtained as follows
In [18]:
'8 = {}, 8.5 = {}, name = {}, 3 = {:04}'.format(8, 8.5, 'Ravi', 3)
Out[18]:
'8 = 8, 8.5 = 8.5, name = Ravi, 3 = 0003'
If the number of items to be formatted goes long, it would become hard
to remember their positions. You can name each entry in format string,
and refer to them in the call to format()
as shown below. Note that
the order of items can be changed now as the items are only referred by
name.
In [19]:
'8 = {a}, 8.5 = {b}, name = {c}, 3 = {d:04}'.format(a = 8, c = 'Ravi', d = 3, b = 8.5)
Out[19]:
'8 = 8, 8.5 = 8.5, name = Ravi, 3 = 0003'
Note
- In
C
and other related languages,''
is used to refer character and""
is used to refer string. But in Python, both refer to string. In Python single character is also a string - Know more about Python String Formatting at PyFormat